草庐IT

c++ - 包装第 3 方 DLL

全部标签

c - 为什么 AssignProcessToJobObject 在 XP 上失败并出现拒绝访问错误?

我有以下代码:#include#include#include#pragmacomment(lib,"shlwapi.lib")int__cdeclwmain(intargc,PWSTRargv[]){HANDLEJob(CreateJobObject(NULL,NULL));if(!Job){wprintf(L"Couldnotcreatejobobject,error%d\n",GetLastError());return0;}HANDLEIOPort(CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,0,1));if(!IOPort

c - kbhit() 作为转义触发器

我想将kbhit()用于“按任意键继续”功能。但是,在循环中使用kbhit()之后,按下的键存储在标准输入中。所以在下一个scanf()中,之前按下的键出现在输入中。intx,b=0;printf("Pressanykeytocontinue...")while(b==0){b=kbhit();}system("cls");printf("Enternumber:");scanf("%d",&x);因此,如果用户按下一个键,比如说字母K,k会出现在“输入数字:”之后。我曾尝试寻找解决方案,但未能使任何解决方案奏效。我试图将退格字符放入输入流中。我也尝试使用getch(),但是,用户必须

c - 为什么 PsGetCurrentProcessId() 返回 null?

我遇到了一个奇怪的问题:在“系统”进程的一个线程中,我调用了PsGetCurrentProcessId(),但得到了一个空值。此外,我检查了线程的_CLIENT_ID,发现UniqueProcess和UniqueThread都是null。我还检查了当前进程,即'system'进程,发现它的UniqueProcessId为4,这是正常的。为什么? 最佳答案 系统进程ID是一个非常好的“hack”,因此多个工具(例如ProcExp、windbg)不必处理特殊情况的仅内核线程或空闲函数调度程序。如果你是一个只有内核的线程,你就没有关联的进

c - 启动时自动启动过程

我正在为我的大学制作一个CloudDrive程序(例如dropbox,但更简单),它允许用户自动上传文件到服务器并与其他用户共享我想做一个选项,这样如果有人启动机器,进程就会自动启动我想我必须做的是在注册表中的键处添加一个条目:HKEY_LOCAL_MACHINE/sofware/Windows/CurrentVersion/Run我写了这些代码行:system("REGADDHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run/vuCloud.exe/tREG_SZ/d\"C:\\Desktop\\

c - 键盘映射的后台c程序

我在我的windows8系统中安装了一个BrammaTTF文件。通过windows字符映射表,我能够找到单个字符代码。下面附上map截图。我们可以在右下方看到“!”的字符代码。是0x21。同样,我可以找到所有其他字母的所有字符代码。现在,我使用基于美国的键盘布局为该字体定义了一个字符映射。例如,我将键盘中的物理字符“a”映射到第3行和第1列中显示的字符。[每当我从键盘上按'a'时,必须显示相应的字符]我想编写一个后台C程序,以便它监听键盘敲击,并且根据我之前定义的字符映射,我的C程序应该输出映射的字符。即,当我从键盘敲击字符“a”时,它应该返回映射的字符。谁能帮我解决这个问题,或者只是

C、Windows API 根据注册表项创建文件夹结构

所以我试图在注册表项之后创建一个文件夹结构。这是我到目前为止所做的#include"stdafx.h"#include"windows.h"#defineMAX_KEY_LENGTH200#defineMAX_VALUE_NAME16383DWORDretCode;voidRecursiveQueryKey(HKEYhKey){HKEYnextKey;WCHARachKey[MAX_KEY_LENGTH];DWORDcbName;DWORDretCode=NULL;DWORDi=0;while(retCode!=ERROR_NO_MORE_ITEMS){cbName=MAX_KEY_L

php - 加载 pdo_firebird.dll

我想运行PHP扩展,以便能够连接到firebird数据库。在php.ini中启用了行extension=pdo_firebird.dll,并且该文件存在于其他扩展名所在的位置-在/ext目录中。每次我重新启动Apache(和PHP)时,我都看不到phpinfo()中加载的扩展。为什么?我在装有PHP5.4的Windows8上运行Apache2.2。 最佳答案 你必须安装fbclient2.5.x也请在php.ini中启用php错误报告display_startup_errors这样你就可以看到pdo_firebird.dll的实际加

c++ - 如何打开只有 FILE_READ_ATTRIBUTES 权限的文件?

我想从非管理员程序发出FSCTL_GET_NTFS_VOLUME_DATA控制代码。该文档说“打开卷时,FILE_READ_ATTRIBUTES或FILE_WRITE_ATTRIBUTES访问权限就足够了”,所以我相信这应该是可能的。我尝试了路径和卷路径:"\.\C:""\?\Volume{4f26a671-c36e-11e2-913d-806e6f6e6963}"虽然我可以打开它们,但对DeviceIOControl的调用将仅适用于GENERIC_READ|GENERIC_WRITE。这是代码:intmain(){char*mount="\\\\.\\C:";HANDLEhHandl

Windows 8 支持 d3d8.dll 吗?

请问各位Windows8是否支持d3d8.dll文件?我听说Windows8呈现的图形与任何其他版本的Windows不同。从而使d3d8.dll对Windows8无用,并在运行游戏时导致崩溃。这是因为Windows8具有触摸屏功能。这是真的吗?如果是的话,我将如何为我的游戏修复它,因为我需要d3d8.dll来修复“CPUspeedhack”,但同时我想让它兼容适用于所有Windows版本。 最佳答案 Windows对特定服务或功能的支持比提供或不提供某些DLL更复杂,所以问题首先是不正确的。如果您的应用程序正在使用Windows8中

为两个不同的进程创建共享内存

因此,我尝试在C程序中创建一个共享内存段,这样我就可以在其中写入一个简单的字符,然后从另一个C程序中读取该字符。我一直在尝试使用calloc()和malloc()但我相信这只适用于该程序自己的heap.是否有另一个函数可以做同样的事情,但在RAM内存中?也许通过十六进制值?还是我错了,这些函数实际上保留了对所有进程可见的内存?提前致谢。编辑:-我正在使用Windows8。-语言不限于C,可以是任何其他语言。 最佳答案 有很多InterprocessCommunications当您需要在隔离的进程之间传输数据时,您可以选择。共享一bl